Memory arrays, which store large amounts of data, are known in the art. Over the years, manufacturers and designers have worked to make the arrays physically smaller but the amount of data stored therein larger.
Computing devices typically have one or more memory arrays to store data and a central processing unit (CPU) and other hardware to process the data. The CPU is typically connected to the memory array via a bus. Unfortunately, while CPU speeds have increased tremendously in recent years, the bus speeds have not increased at an equal pace. Accordingly, the bus connection acts as a bottleneck to increased speed of operation.
The evolving domains of big data and machine learning algorithms involve computation on large amount of data. Reading and writing data from and to memory during computation is CPU intensive and may take a long time to complete when the IO is a significant portion of the whole computation.